/************************************************************************
 * Este archivo, representa todo lo relacionado a la interfaz para 
 * modificar la informacion de un cliente.
 * 
 * @system: veco-system
 * @description: Sistema de control vehicular
 * @version: 1.0
 * @Copyright © 2013 
 * 
 * @authores:
 * 
 *      > Alberione, Fernando    <falberione_037@gmail.com>
 * 
 *      > Boretto, Martin        <martinboretto@gmail.com>
 * 
 *      > Lenarduzzi, Federico   <fedeatenas@gmail.com>
 * 
 *      > Ocampo, Emanuel        <eocampo86@gmail.com>
 *
 *************************************************************************/

package Interfaces;

import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import SistemaCocheras.manejadorCliente;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.ResultSet;


public class modificarCliente extends javax.swing.JFrame {
  
    private String dniAux = "";
    private String campoDni = "";
    private String campoNombre = "";
    private String campoApellido = "";
    private int campoEdad = 0;
    private String campoDireccion = "";
    private String campoTelefono = "";
    private Boolean campoBotonDesc = false;
    private int campoDescuento = 0;
    private Connection conexion = null;
    private int tarifa = 0;
    
    
    // ---------------------------------------------------------
    // ------- Seccion de constructores de la clase
    // --------------------------------------------------------- 
    
    /**
     * Constructor vacio
     */
    public modificarCliente() {
        initComponents();
        centrarJFrame();
    }


    /**
     * Metodo encargado de crear el frame "Modificar Cliente"
     * @param con Representa la conexion con la base de datos
     * @param dni Representa el dni del cliente a modificar
     * @throws SQLException
     */
    public modificarCliente(Connection con, String dni){
        
        this.conexion = con;
        initComponents();
        centrarJFrame();
        manejadorCliente mc = new manejadorCliente(this.conexion);
        try {
            ResultSet res = mc.buscarClientePorDni(dni);
            if (res.next()) {
                this.dniAux = dni;
                campoTextoApellido.setText(res.getString("apellido"));
                campoTextoDescuento.setText(res.getString("porcentaje_descuento"));
                campoTextoDireccion.setText(res.getString("direccion"));
                campoTextoDni.setText(res.getString("dni"));
                campoTextoEdad.setText(res.getString("edad"));
                campoTextoNombre.setText(res.getString("nombre"));
                campoTextoTelefono.setText(res.getString("telefono"));
                String val = res.getString("tiene_descuento");
                if (val.compareTo("0")==0){
                    checkBotonDescuento.setSelected(false);
                }
                else{
                    checkBotonDescuento.setSelected(true);
                    campoTextoDescuento.setEnabled(true);
                }
                comboBoxTarifa.setSelectedIndex(Integer.parseInt(res.getString("tipotarifa")));
            }
        } 
        catch (SQLException ex) {
            JOptionPane.showMessageDialog(null,"ha ocurrido un error interno:"+ ex, "Sistema de Cocheras B&B",JOptionPane.ERROR_MESSAGE);
        }
        
    }// Fin modificarCliente
    
    
    /** Este metodo es llamado desde el constructor para 
     * inicializar el form.
     * CUIDADO: NO modifique este codigo. El contenido de este metodo
     * es siempre regenerado por el editor de form.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        labelDni = new javax.swing.JLabel();
        campoTextoDni = new javax.swing.JTextField();
        labelNombre = new javax.swing.JLabel();
        campoTextoApellido = new javax.swing.JTextField();
        labelApellido = new javax.swing.JLabel();
        campoTextoEdad = new javax.swing.JTextField();
        labelEdad = new javax.swing.JLabel();
        campoTextoNombre = new javax.swing.JTextField();
        labelDireccion = new javax.swing.JLabel();
        campoTextoDireccion = new javax.swing.JTextField();
        labelTelefono = new javax.swing.JLabel();
        campoTextoTelefono = new javax.swing.JTextField();
        BotonAceptar = new javax.swing.JButton();
        labelTarifa = new javax.swing.JLabel();
        comboBoxTarifa = new javax.swing.JComboBox();
        campoTextoDescuento = new javax.swing.JTextField();
        checkBotonDescuento = new javax.swing.JCheckBox();
        BotonCancelar = new javax.swing.JButton();
        botonNuevoVehiculo = new javax.swing.JButton();
        botonModificarVehiculo = new javax.swing.JButton();
        botonEliminarVehiculo = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("B&B - Modificar cliente");
        setResizable(false);

        labelDni.setText("DNI (*):");

        labelNombre.setText("Nombre (*):");

        labelApellido.setText("Apellido (*):");

        labelEdad.setText("Edad:");

        labelDireccion.setText("Direccion:");

        labelTelefono.setText("Telefono:");

        BotonAceptar.setText("Aceptar");
        BotonAceptar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotonAceptarActionPerformed(evt);
            }
        });

        labelTarifa.setText("Tarifa:");

        comboBoxTarifa.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Por Semana", "Por Quincena", "Por Mes" }));
        comboBoxTarifa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                comboBoxTarifaActionPerformed(evt);
            }
        });

        campoTextoDescuento.setText("0");
        campoTextoDescuento.setEnabled(false);
        campoTextoDescuento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                campoTextoDescuentoActionPerformed(evt);
            }
        });

        checkBotonDescuento.setText("Descuento (%):");
        checkBotonDescuento.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                checkBotonDescuentoActionPerformed(evt);
            }
        });

        BotonCancelar.setText("Cancelar");
        BotonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                BotonCancelarActionPerformed(evt);
            }
        });

        botonNuevoVehiculo.setText("Nuevo Vehiculo");
        botonNuevoVehiculo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonNuevoVehiculoActionPerformed(evt);
            }
        });

        botonModificarVehiculo.setText("Modificar Vehiculo");
        botonModificarVehiculo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonModificarVehiculoActionPerformed(evt);
            }
        });

        botonEliminarVehiculo.setText("Eliminar Vehiculo");
        botonEliminarVehiculo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonEliminarVehiculoActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(labelDni)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(labelApellido, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(labelTelefono)
                            .addComponent(labelDireccion)
                            .addComponent(labelEdad)
                            .addComponent(labelTarifa)
                            .addComponent(labelNombre, javax.swing.GroupLayout.DEFAULT_SIZE, 58, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(campoTextoDireccion, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addComponent(campoTextoTelefono, javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                    .addComponent(comboBoxTarifa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(24, 24, 24)
                                    .addComponent(checkBotonDescuento)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                    .addComponent(campoTextoDescuento, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addComponent(campoTextoEdad, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
                            .addComponent(campoTextoApellido, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
                            .addComponent(campoTextoDni, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
                            .addComponent(campoTextoNombre, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE))))
                .addGap(60, 60, 60))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(70, Short.MAX_VALUE)
                .addComponent(BotonAceptar, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(34, 34, 34)
                .addComponent(BotonCancelar, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(81, 81, 81))
            .addGroup(layout.createSequentialGroup()
                .addGap(8, 8, 8)
                .addComponent(botonNuevoVehiculo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(botonModificarVehiculo)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(botonEliminarVehiculo)
                .addGap(18, 18, 18))
        );

        layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {BotonAceptar, BotonCancelar});

        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(labelDni)
                    .addComponent(campoTextoDni, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(37, 37, 37)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(labelEdad)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(campoTextoApellido, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(labelApellido))
                                .addGap(18, 18, 18)
                                .addComponent(campoTextoEdad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(campoTextoDireccion, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(labelDireccion))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(campoTextoTelefono, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(labelTelefono))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(labelTarifa)
                            .addComponent(checkBotonDescuento)
                            .addComponent(campoTextoDescuento, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(comboBoxTarifa, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(campoTextoNombre, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(labelNombre)))
                .addGap(25, 25, 25)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botonNuevoVehiculo)
                    .addComponent(botonModificarVehiculo)
                    .addComponent(botonEliminarVehiculo))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(BotonCancelar)
                    .addComponent(BotonAceptar))
                .addContainerGap(16, Short.MAX_VALUE))
        );

        layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {BotonAceptar, BotonCancelar});

        checkBotonDescuento.getAccessibleContext().setAccessibleParent(campoTextoDescuento);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    
    // ---------------------------------------------------------
    // ------- Seccion de metodos privados
    // ---------------------------------------------------------  
    
    
    /**
     * Metodo encargado de realizar la modificacion del cliente
     * @param evt Evento que representa el click en el boton Aceptar
     */ 
    private void BotonAceptarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BotonAceptarActionPerformed
        manejadorCliente modCliente = new manejadorCliente(this.conexion);
        this.campoDni = campoTextoDni.getText();                        // Obtengo la informacion que se carga en el campo de texto "DNI"
        this.campoNombre = campoTextoNombre.getText();                  // Obtengo la informacion que se carga en el campo de texto "NOMBRE"
        this.campoApellido = campoTextoApellido.getText();              // Obtengo la informacion que se carga en el campo de texto "APELLIDO"
        if(campoTextoEdad.getText().compareTo("") != 0){
            this.campoEdad = Integer.parseInt(campoTextoEdad.getText());// Obtengo la informacion que se carga en el campo de texto "EDAD"
        }
        this.campoDireccion = campoTextoDireccion.getText();            // Obtengo la informacion que se carga en el campo de texto "DIRECCION"
        this.campoTelefono = campoTextoTelefono.getText();              // Obtengo la informacion que se carga en el campo de texto "TELEFONO"
        this.campoBotonDesc = checkBotonDescuento.isSelected();
        this.tarifa = comboBoxTarifa.getSelectedIndex();
        if(campoTextoDescuento.getText().compareTo("") != 0){
            this.campoDescuento = Integer.parseInt(campoTextoDescuento.getText());
        }
        if ((this.campoDni.compareTo("") != 0)  && (this.campoNombre.compareTo("") != 0) && (this.campoApellido.compareTo("") != 0)) {
            try {
                if (this.campoBotonDesc && (this.campoDescuento <= 100) && (this.campoDescuento >= 0)) {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                    JOptionPane.showMessageDialog(null, "El cliente " + this.campoNombre + " " + this.campoApellido + " ha sido actualizado satisfactoriamente en el sistema con un descuento de: " + this.campoDescuento + "%", "Sistema de Cocheras B&B", JOptionPane.INFORMATION_MESSAGE);
                } 
                else {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                    JOptionPane.showMessageDialog(null, "El cliente " + this.campoNombre + " " + this.campoApellido + " ha sido actualizado satisfactoriamente en el sistema", "Sistema de Cocheras B&B", JOptionPane.INFORMATION_MESSAGE);
                }
                modificarCliente.this.dispose();
            } 
            catch (Exception e) {
                JOptionPane.showMessageDialog(null, "a ocurrido un error interno:" + e, "Sistema de Cocheras B&B", JOptionPane.ERROR_MESSAGE);
            }
        } 
        else {
            lanzarError();
        }
    }//GEN-LAST:event_BotonAceptarActionPerformed

    private void comboBoxTarifaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboBoxTarifaActionPerformed
    }//GEN-LAST:event_comboBoxTarifaActionPerformed

    private void campoTextoDescuentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_campoTextoDescuentoActionPerformed
    }//GEN-LAST:event_campoTextoDescuentoActionPerformed

    
    /**
     * Metodo encargado de cancelar la modificacion del cliente
     * @param evt Evento que representa el click en el boton Cancelar
     */
    private void BotonCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_BotonCancelarActionPerformed
        modificarCliente.this.dispose();
    }//GEN-LAST:event_BotonCancelarActionPerformed

    
    
    /**
     * Metodo encargado de habilitar la opcion de descuento
     * @param evt Evento que representa el click en el boton Descuento
     */
    private void checkBotonDescuentoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkBotonDescuentoActionPerformed
        if (checkBotonDescuento.isSelected())
            campoTextoDescuento.setEnabled(true);
        else
            campoTextoDescuento.setEnabled(false);
    }//GEN-LAST:event_checkBotonDescuentoActionPerformed

    
    
    /**
     * Metodo encargado de agregar un nuevo vehiculo a un cliente
     * @param evt Evento que representa el click en el boton Nuevo Vehiculo
     */
    private void botonNuevoVehiculoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonNuevoVehiculoActionPerformed
       manejadorCliente modCliente = new manejadorCliente(this.conexion);
        this.campoDni = campoTextoDni.getText();                        // Obtengo la informacion que se carga en el campo de texto "DNI"
        this.campoNombre = campoTextoNombre.getText();                  // Obtengo la informacion que se carga en el campo de texto "NOMBRE"
        this.campoApellido = campoTextoApellido.getText();              // Obtengo la informacion que se carga en el campo de texto "APELLIDO"
        if(campoTextoEdad.getText().compareTo("") != 0){
            this.campoEdad = Integer.parseInt(campoTextoEdad.getText());// Obtengo la informacion que se carga en el campo de texto "EDAD"
        }
        this.campoDireccion = campoTextoDireccion.getText();            // Obtengo la informacion que se carga en el campo de texto "DIRECCION"
        this.campoTelefono = campoTextoTelefono.getText();              // Obtengo la informacion que se carga en el campo de texto "TELEFONO"
        this.campoBotonDesc = checkBotonDescuento.isSelected();
        this.tarifa = comboBoxTarifa.getSelectedIndex();
        if(campoTextoDescuento.getText().compareTo("") != 0){
            this.campoDescuento = Integer.parseInt(campoTextoDescuento.getText());
        }
        if ((this.campoDni.compareTo("") != 0)  && (this.campoNombre.compareTo("") != 0) && (this.campoApellido.compareTo("") != 0)) {
            try {
                if (this.campoBotonDesc && (this.campoDescuento <= 100) && (this.campoDescuento >= 0)) {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                } 
                else {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                }
                nuevoVehiculo nv = new nuevoVehiculo(this.conexion, this.campoDni);
                nv.setVisible(true);
            } 
            catch (Exception e) {
                JOptionPane.showMessageDialog(null, "ha ocurrido un error interno:" + e, "Sistema de Cocheras B&B", JOptionPane.ERROR_MESSAGE);
            }
        } 
        else {
            lanzarError();
        }
}//GEN-LAST:event_botonNuevoVehiculoActionPerformed

    /**
     * Metodo encargado de editar un vehiculo ya existente en un cliente
     * @param evt Evento que representa el click en el boton Modificar Vehiculo
     */
    private void botonModificarVehiculoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonModificarVehiculoActionPerformed
        manejadorCliente modCliente = new manejadorCliente(this.conexion);
        this.campoDni = campoTextoDni.getText();                        // Obtengo la informacion que se carga en el campo de texto "DNI"
        this.campoNombre = campoTextoNombre.getText();                  // Obtengo la informacion que se carga en el campo de texto "NOMBRE"
        this.campoApellido = campoTextoApellido.getText();              // Obtengo la informacion que se carga en el campo de texto "APELLIDO"
        if(campoTextoEdad.getText().compareTo("") != 0){
            this.campoEdad = Integer.parseInt(campoTextoEdad.getText());// Obtengo la informacion que se carga en el campo de texto "EDAD"
        }
        this.campoDireccion = campoTextoDireccion.getText();            // Obtengo la informacion que se carga en el campo de texto "DIRECCION"
        this.campoTelefono = campoTextoTelefono.getText();              // Obtengo la informacion que se carga en el campo de texto "TELEFONO"
        this.campoBotonDesc = checkBotonDescuento.isSelected();
        this.tarifa = comboBoxTarifa.getSelectedIndex();
        if(campoTextoDescuento.getText().compareTo("") != 0){
            this.campoDescuento = Integer.parseInt(campoTextoDescuento.getText());
        }
        if ((this.campoDni.compareTo("") != 0)  && (this.campoNombre.compareTo("") != 0) && (this.campoApellido.compareTo("") != 0) && (this.campoEdad >= 16) && (this.campoDireccion.compareTo("") != 0) && (this.campoTelefono.compareTo("") != 0)) {
            try {
                if (this.campoBotonDesc && (this.campoDescuento <= 100) && (this.campoDescuento >= 0)) {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                } 
                else {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                }
                vehiculoAModificar vam = new vehiculoAModificar(this.conexion, this.campoDni);
                vam.setVisible(true);
            } 
            catch (Exception e) {
                JOptionPane.showMessageDialog(null, "ha ocurrido un error interno:" + e, "Sistema de Cocheras B&B", JOptionPane.ERROR_MESSAGE);
            }
        } 
        else {
            lanzarError();
        }
    }//GEN-LAST:event_botonModificarVehiculoActionPerformed

    
    /**
     * Metodo encargado de eliminar un vehiculo ya existente en un cliente
     * @param evt Evento que representa el click en el boton Eliminar Vehiculo
     */
    private void botonEliminarVehiculoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonEliminarVehiculoActionPerformed
        manejadorCliente modCliente = new manejadorCliente(this.conexion);
        this.campoDni = campoTextoDni.getText();                        // Obtengo la informacion que se carga en el campo de texto "DNI"
        this.campoNombre = campoTextoNombre.getText();                  // Obtengo la informacion que se carga en el campo de texto "NOMBRE"
        this.campoApellido = campoTextoApellido.getText();              // Obtengo la informacion que se carga en el campo de texto "APELLIDO"
        if(campoTextoEdad.getText().compareTo("") != 0){
            this.campoEdad = Integer.parseInt(campoTextoEdad.getText());// Obtengo la informacion que se carga en el campo de texto "EDAD"
        }
        this.campoDireccion = campoTextoDireccion.getText();            // Obtengo la informacion que se carga en el campo de texto "DIRECCION"
        this.campoTelefono = campoTextoTelefono.getText();              // Obtengo la informacion que se carga en el campo de texto "TELEFONO"
        this.campoBotonDesc = checkBotonDescuento.isSelected();
        this.tarifa = comboBoxTarifa.getSelectedIndex();
        if(campoTextoDescuento.getText().compareTo("") != 0){
            this.campoDescuento = Integer.parseInt(campoTextoDescuento.getText());
        }
        if ((this.campoDni.compareTo("") != 0)  && (this.campoNombre.compareTo("") != 0) && (this.campoApellido.compareTo("") != 0) && (this.campoEdad >= 16) && (this.campoDireccion.compareTo("") != 0) && (this.campoTelefono.compareTo("") != 0)) {
            try {
                if (this.campoBotonDesc && (this.campoDescuento <= 100) && (this.campoDescuento >= 0)) {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                } 
                else {
                    modCliente.actualizarCliente(this.campoDni, this.campoNombre, this.campoApellido, this.campoEdad, this.campoDireccion, this.campoTelefono, this.tarifa, this.campoBotonDesc, this.campoDescuento, this.dniAux);
                }
                removerVehiculo rv = new removerVehiculo(this.conexion,this.campoDni);
                rv.setVisible(true);
            } 
            catch (Exception e) {
                JOptionPane.showMessageDialog(null, "ha ocurrido un error interno:" + e, "Sistema de Cocheras B&B", JOptionPane.ERROR_MESSAGE);
            }
        } 
        else {
            lanzarError();
        }
    }//GEN-LAST:event_botonEliminarVehiculoActionPerformed

    /**
     * Metodo encargado de advertir un error en la modificacion de la informacion
     */
    private void lanzarError(){
        JOptionPane.showMessageDialog(null, "Se deben rellenar correctamente todos los campos.", "Sistema de Cocheras",JOptionPane.ERROR_MESSAGE);
    }

    /**
     * Metodo encargado de ubicar el frame en el centro de la pantalla
     */
    private void centrarJFrame(){
        Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frame =this.getSize();
        this.setLocation((pantalla.width-frame.width)/2, (pantalla.height-frame.height)/2);
    }

    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new nuevoCliente().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton BotonAceptar;
    private javax.swing.JButton BotonCancelar;
    private javax.swing.JButton botonEliminarVehiculo;
    private javax.swing.JButton botonModificarVehiculo;
    private javax.swing.JButton botonNuevoVehiculo;
    private javax.swing.JTextField campoTextoApellido;
    private javax.swing.JTextField campoTextoDescuento;
    private javax.swing.JTextField campoTextoDireccion;
    private javax.swing.JTextField campoTextoDni;
    private javax.swing.JTextField campoTextoEdad;
    private javax.swing.JTextField campoTextoNombre;
    private javax.swing.JTextField campoTextoTelefono;
    private javax.swing.JCheckBox checkBotonDescuento;
    private javax.swing.JComboBox comboBoxTarifa;
    private javax.swing.JLabel labelApellido;
    private javax.swing.JLabel labelDireccion;
    private javax.swing.JLabel labelDni;
    private javax.swing.JLabel labelEdad;
    private javax.swing.JLabel labelNombre;
    private javax.swing.JLabel labelTarifa;
    private javax.swing.JLabel labelTelefono;
    // End of variables declaration//GEN-END:variables

}
